1. Field of the Invention
The present invention relates to a security checking method for ascertaining the authenticity of a program that is to be executed, to an information processing apparatus having such a security checking function, and to a program storage device that is employed for the information processing apparatus.
2. Related Arts
As the processing speed of microprocessors is being increased, information processing apparatuses of various types are being provided, and programs for execution by such information processing apparatuses are also being provided on many types of recording media.
Especially for information processing apparatuses, such as video game machines, the media employed for the distribution of game programs that are to be executed are usually cartridges, in which are packaged semiconductor read only memory (ROM) chips on which programs are recorded, or CD-ROMs.
In the video game business, not only is the superiority of a video game machine important, but also the relative excellence of a video game affects the distribution of game programs. If an excellent game program can be copied, or imitated, and sold by a third party who is not authorized to do so, the value to a developer of that game program is lost and the confidence of customers in the products of the developer is also deteriorated.
Therefore, security checking functions for examining the authenticity of programs and for preventing the execution of illegal programs have been proposed for information processing apparatuses, and have been implemented.
Such prior art techniques are described in, for example, U.S. Pat. No. 4,442,486 (hereinafter abbreviated as "USP486"), U.S. Pat. No. 4,454,594 (hereinafter abbreviated as "USP594), U.S. Pat. No. 4,462,076 (hereinafter abbreviated as "USP076"), and Japanese Unexamined Patent Publication No. Sho 62-3331 (hereinafter abbreviated as a "331 publication").
In the technique disclosed in USP486, a program includes data for generating a display signal to momentarily display a patent number or a patent application number. The authenticity of the program is ascertained by examining the data for the generation of the momentary display to determine whether they match a reference signal that is stored in an information processing apparatus.
The technique disclosed in USP594, which is the same as that in USP486, reads data that are stored in a specific location in an external memory in which a program is stored, displays the read data, such as a trademark, and determines whether or not the data match reference data that are stored in an information processing apparatus. When the data do not match, execution of the program is blocked.
The technique disclosed in USP076, which is the same as the techniques in USP486 and USP594, compares data at a predetermined address in an external memory cartridge with reference data stored in an information processing apparatus. Before substantially connecting the external memory to the apparatus, information concerning an authorized owner is displayed.
When the data matches the reference data, the external memory cartridge is regarded as an authentic one, and execution of a game is enabled.
Further, in the 331 publication, especially before a main operation of an information processing apparatus is begun, a program that is stored in an external memory device to ascertain program authenticity is executed by the external memory device. At the same time, a program for ascertaining program authenticity is executed by the information processing apparatus. When the results obtained by the execution of both programs for ascertaining program authenticity match, the main operation of the apparatus is activated.
The conventional security checking function for an information processing apparatus is performed by determining whether security codes, etc., match before a program, such as a game program, is executed. Once the execution of a program has begun, further security checking is not performed, or else can not be performed, for the duration of the execution of the program.
In a sequence of a program, therefore, steps for security checking processing are disabled or bypassed by some means, usually illegally, and as a result, the following steps in the program are performed though without the security check.
In addition, according to the security checking method described in USP486, USP596 or USP076, display data, such as a trademark, are merely displayed momentarily; the information processing apparatus neither checks to determine whether or not the correct image of a trademark, etc., is actually displayed, nor is it designed to do so.
Further, as is described above, when the steps for processing the security checking are disabled or bypassed in some manner, specific data can not be displayed and the authenticity of a program can not be examined.